package com.baidu.track.utils;

import android.content.Context;

import com.google.gson.Gson;
import com.zhy.http.okhttp.OkHttpUtils;
import com.zhy.http.okhttp.callback.Callback;

import okhttp3.MediaType;

public class HttpUtil {
    private Context mContext;
    public static MediaType JSON = MediaType.parse("application/json;charset=utf-8");
    /**
     * GET,PUT等网络操作类*/
    public HttpUtil(Context context)
    {
        this.mContext=context;
    }

    /**
     * GET方式
     * 获取JAXRS WebService的结果信息 ,获取用户信息
     * @param <T>
     * @param url
     */

    public  <T>  void getinfo(final String url, Callback callback) {
        OkHttpUtils
                .get()
                .tag(mContext)
                .url(url)
                .build()
                .execute(callback);
    }

    /**
     * POST  JSON方式,提交一个json字符串到服务器
     * 用户登录
     * @param <T>
     * @param  url
     * synchronized关键字的目的是全部文件上传发生线程乱序
     * */
    public  <T> void  postData(final String url, T t, Callback callback) {

        //HashMap<String,String> headers=new HashMap<String,String>();
        //headers.put("Content-Type", "application/x-www-form-urlencoded");
        OkHttpUtils
                .postString()
                .url(url)
                .tag(mContext) // 请求的 tag, 主要用于取消对应的请求
                .mediaType(JSON) //设置post的字符串为json字符串并设置编码
                //.headers(headers)
                .content(new Gson().toJson(t)) //用Gson将t转化为Json字符串的形式作为content
                .build()
                .execute(callback);
    }

}
